const state = {
  // 用户信息：
  // - null：未登录
  // - { isVisitor: true }：游客
  // - { id, username, ... }：已登录用户
  userInfo: null,
  redirectPath: ''
}

const mutations = {
  // 设置“游客状态”（接收 isVisitor 参数）
  SET_VISITOR(state, isVisitor) {
    state.userInfo = isVisitor ? { isVisitor: true } : null;
  },
  // 存储“已登录用户信息”
  SET_USER_INFO(state, userInfo) {
    state.userInfo = userInfo; // 后端返回的用户信息（不含 isVisitor 或 isVisitor: false）
  },
  // 退出登录（重置为未登录）
  LOGOUT(state) {
    state.userInfo = null;
  },
  SET_REDIRECT_PATH(state, path) {
    state.redirectPath = path;
  }
}

const actions = {
  visitorLogin({ commit }) {
    commit('SET_VISITOR', true); // 明确传参 true，标记为游客
  },
  logout({ commit }) {
    commit('LOGOUT');
  }
}

const getters = {
  // 是否为“游客”
  isVisitor: state => state.userInfo?.isVisitor || false,
  // 是否已“登录”（非游客 + 有用户信息）
  isLogin: state => !!state.userInfo && !state.userInfo?.isVisitor,
  redirectPath: state => state.redirectPath
}

export default {
  namespaced: true,
  state,
  mutations,
  actions,
  getters
}